package com.ruoyi.machine.mapper;


import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.core.domain.machine.EmpMachine;
import com.ruoyi.common.core.domain.store.EmpStoreVo;
import com.ruoyi.machine.domain.vo.EmpMachineVo;
import com.ruoyi.machine.domain.vo.MachineListVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 机台列表Mapper接口
 *
 * @author 黄字添
 * @date 2023-12-25
 */
@Mapper
public interface EmpMachineMapper extends BaseMapper<EmpMachine> {
    /**
     * 查询机台列表
     *
     * @param MachineID 机台列表主键
     * @return 机台列表
     */
    public EmpMachine selectEmpMachineByMachineID(Long MachineID);

    /**
     * 查询机台列表列表
     *
     * @param empMachine 机台列表
     * @return 机台列表集合
     */
    public List<EmpMachine> selectEmpMachineList(EmpMachineVo empMachine);

    public List<EmpMachine> selectEmpMachineList1(EmpMachineVo empMachine);
    
    public List<EmpMachine> selectMachineInfo(Long machineID);
    
    public List<EmpMachine> selectEmpMachineNoUseList(EmpMachineVo empMachine);

    public List<EmpMachine> selectEmpMachineAllUseList(EmpMachineVo empMachine);

    /**
     * 查询机台当前状态
     *
     * @param machineID 机台列表主键
     * @return 状态值
     */
    public Integer selectStatus(Long machineID);

    /**
     * 新增机台列表
     *
     * @param empMachine 机台列表
     * @return 结果
     */
    public int insertEmpMachine(EmpMachine empMachine);

    /**
     * 修改机台列表
     *
     * @param empMachine 机台列表
     * @return 结果
     */
    public int updateEmpMachine(EmpMachine empMachine);

    /**
     * 删除机台列表
     *
     * @param MachineID 机台列表主键
     * @return 结果
     */
    public int deleteEmpMachineByMachineID(Long MachineID);

    /**
     * 批量删除机台列表
     *
     * @param MachineIDs 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteEmpMachineByMachineIDs(Long[] MachineIDs);

    List<EmpStoreVo> selectEmpStoreList();

    int updateStatusLock(Long machineID);

    int updateStatusUnLock(Long machineID);

    Long[] getMachineTypeByStoreID(Long storeID);

    List<EmpMachine> selectEmpMachineListByTypeAndStore(EmpMachine empMachine);

    int updateStatusDown(Long machineID);

    int updateStatusMaintenance(Long machineID);

    int addOnlineNumber(Long machineID);

    int reduceOnlineNumber(Long machineID);

    List<MachineListVo> getMachineList(Long storeID);
    
    List<EmpMachine> selectAppMachineList(EmpMachineVo empMachine);

}
